#include "SDL.h"

const int TAILLE_SPRITE=32;

void sdljeuInit(SDLJEU *pSdlJeu)
{

    JEU *jeu;
    TTF_Init();

	jeu = &(pSdlJeu->jeu);
	jeInit_Jeu(jeu);


    assert(  SDL_Init( SDL_INIT_EVERYTHING )!= -1 );

	pSdlJeu->ecran = SDL_SetVideoMode(1300, 1200, 32, SDL_SWSURFACE );

	assert( pSdlJeu->ecran!=NULL);

	SDL_WM_SetCaption( "1001-Questions", NULL );

    pSdlJeu->surface_Menu = IMG_Load("data/Menu.jpg");
	if (pSdlJeu->surface_Menu==NULL)
		pSdlJeu->surface_Menu = IMG_Load("data/Menu.jpg");

	assert( pSdlJeu->surface_Menu!=NULL);

    pSdlJeu->surface_MenuJoueur = IMG_Load("data/MenuJoueur.jpg");
	if (pSdlJeu->surface_MenuJoueur==NULL)
		pSdlJeu->surface_MenuJoueur = IMG_Load("data/MenuJoueur.jpg");

	assert( pSdlJeu->surface_MenuJoueur!=NULL);

    pSdlJeu->surface_PlateauFinal = IMG_Load("data/plateau.jpg");
	if (pSdlJeu->surface_PlateauFinal==NULL)
		pSdlJeu->surface_PlateauFinal = IMG_Load("data/plateau.jpg");

	assert( pSdlJeu->surface_PlateauFinal!=NULL);


    pSdlJeu->surface_Mcar1 = IMG_Load("data/Mcar1.jpg");
	if (pSdlJeu->surface_Mcar1==NULL)
		pSdlJeu->surface_Mcar1 = IMG_Load("data/Mcar1.jpg");

	assert( pSdlJeu->surface_Mcar1!=NULL);

    pSdlJeu->surface_Mcar2 = IMG_Load("data/Mcar2.jpg");
	if (pSdlJeu->surface_Mcar2==NULL)
		pSdlJeu->surface_Mcar2 = IMG_Load("data/Mcar2.jpg");

	assert( pSdlJeu->surface_Mcar2!=NULL);

    pSdlJeu->surface_Mcar3 = IMG_Load("data/Mcar3.jpg");
	if (pSdlJeu->surface_Mcar3==NULL)
		pSdlJeu->surface_Mcar3 = IMG_Load("data/Mcar3.jpg");

	assert( pSdlJeu->surface_Mcar3!=NULL);

    pSdlJeu->surface_Mcar4 = IMG_Load("data/Mcar4.jpg");
	if (pSdlJeu->surface_Mcar4==NULL)
		pSdlJeu->surface_Mcar4 = IMG_Load("data/Mcar4.jpg");

	assert( pSdlJeu->surface_Mcar4!=NULL);

    pSdlJeu->surface_Mcar5 = IMG_Load("data/Mcar5.jpg");
	if (pSdlJeu->surface_Mcar5==NULL)
		pSdlJeu->surface_Mcar5 = IMG_Load("data/Mcar5.jpg");

	assert( pSdlJeu->surface_Mcar5!=NULL);

    pSdlJeu->surface_Mcar6 = IMG_Load("data/Mcar6.jpg");
	if (pSdlJeu->surface_Mcar6==NULL)
		pSdlJeu->surface_Mcar6 = IMG_Load("data/Mcar6.jpg");

	assert( pSdlJeu->surface_Mcar6!=NULL);

    pSdlJeu->surface_Mcar7 = IMG_Load("data/Mcar7.jpg");
	if (pSdlJeu->surface_Mcar7==NULL)
		pSdlJeu->surface_Mcar7 = IMG_Load("data/Mcar7.jpg");

	assert( pSdlJeu->surface_Mcar7!=NULL);

    pSdlJeu->surface_Mcar8 = IMG_Load("data/Mcar8.jpg");
	if (pSdlJeu->surface_Mcar8==NULL)
		pSdlJeu->surface_Mcar8 = IMG_Load("data/Mcar8.jpg");

	assert( pSdlJeu->surface_Mcar8!=NULL);

    pSdlJeu->surface_RPcar1 = IMG_Load("data/RPcar1.jpg");
	if (pSdlJeu->surface_RPcar1==NULL)
		pSdlJeu->surface_RPcar1 = IMG_Load("data/RPcar1.jpg");

	assert( pSdlJeu->surface_RPcar1!=NULL);

    pSdlJeu->surface_RPcar2 = IMG_Load("data/RPcar2.jpg");
	if (pSdlJeu->surface_RPcar2==NULL)
		pSdlJeu->surface_RPcar2 = IMG_Load("data/RPcar2.jpg");

	assert( pSdlJeu->surface_RPcar2!=NULL);

    pSdlJeu->surface_RPcar3 = IMG_Load("data/RPcar3.jpg");
	if (pSdlJeu->surface_RPcar3==NULL)
		pSdlJeu->surface_RPcar3 = IMG_Load("data/RPcar3.jpg");

	assert( pSdlJeu->surface_RPcar3!=NULL);

    pSdlJeu->surface_RPcar4 = IMG_Load("data/RPcar4.jpg");
	if (pSdlJeu->surface_RPcar4==NULL)
		pSdlJeu->surface_RPcar4 = IMG_Load("data/RPcar4.jpg");

	assert( pSdlJeu->surface_RPcar4!=NULL);

    pSdlJeu->surface_RPcar5 = IMG_Load("data/RPcar5.jpg");
	if (pSdlJeu->surface_RPcar5==NULL)
		pSdlJeu->surface_RPcar5 = IMG_Load("data/RPcar5.jpg");

	assert( pSdlJeu->surface_RPcar5!=NULL);

	pSdlJeu->surface_regle1 = IMG_Load("data/Règle1.jpg");
	if (pSdlJeu->surface_regle1==NULL)
		pSdlJeu->surface_regle1 = IMG_Load("data/Règle1.jpg");

	assert( pSdlJeu->surface_regle1!=NULL);

	pSdlJeu->surface_regle2 = IMG_Load("data/Règle2.jpg");
	if (pSdlJeu->surface_regle2==NULL)
		pSdlJeu->surface_regle2 = IMG_Load("data/Règle2.jpg");

	assert( pSdlJeu->surface_regle2!=NULL);

	pSdlJeu->surface_1 = IMG_Load("data/pion1.jpg");
	if (pSdlJeu->surface_1==NULL)
		pSdlJeu->surface_1 = IMG_Load("data/pion1.jpg");

	assert( pSdlJeu->surface_1!=NULL);

	pSdlJeu->surface_2 = IMG_Load("data/pion2.jpg");
	if (pSdlJeu->surface_2==NULL)
		pSdlJeu->surface_2= IMG_Load("data/pion2.jpg");

	assert( pSdlJeu->surface_2!=NULL);

	pSdlJeu->surface_3 = IMG_Load("data/pion3.jpg");
	if (pSdlJeu->surface_3==NULL)
		pSdlJeu->surface_3 = IMG_Load("data/pion3.jpg");

	assert( pSdlJeu->surface_3!=NULL);

	pSdlJeu->surface_4 = IMG_Load("data/pion4.jpg");
	if (pSdlJeu->surface_4==NULL)
		pSdlJeu->surface_4 = IMG_Load("data/pion4.jpg");

	assert( pSdlJeu->surface_4!=NULL);
}

void sdlAff_Carte(SDLJEU *pSdlJeu)
{
    SDL_Rect carte, carte2;

	carte.x = 0;
	carte.y = 0;
	carte.h = 200;
	carte.w = 400;

	carte2.x = 10;
	carte2.y = 10;
	carte2.h = 200;
	carte2.w = 400;

	if(pSdlJeu->jeu.resqu == 1)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar1,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 2)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar2,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 3)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar3,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 4)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar4,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 5)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar5,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 6)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar6,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 7)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar7,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resqu == 8)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar8,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.respi == 13)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar1,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.respi == 14)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar2,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.respi == 15)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar3,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.respi == 16)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar4,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.respi == 17)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar5,&carte,pSdlJeu->ecran,&carte2);
    }
    
}

void sdlAff_1(SDLJEU *pSdlJeu)
{
    SDL_Rect pion1, pion12;

	pion1.x = 0;
	pion1.y = 0;
	pion1.h = 86;
	pion1.w = 318;

	pion12.x= pSdlJeu->jeu.pi->x_dep1;
	pion12.y = pSdlJeu->jeu.pi->y_dep1;
	pion12.h = 86;
	pion12.w = 318;

	SDL_BlitSurface(pSdlJeu->surface_1,&pion1,pSdlJeu->ecran,&pion12);
}

void sdlAff_2(SDLJEU *pSdlJeu)
{
    SDL_Rect pion2, pion22;

	pion2.x = 0;
	pion2.y = 0;
	pion2.h = 105;
	pion2.w = 200;

	pion22.x = pSdlJeu->jeu.pi->x_dep2;
	pion22.y = pSdlJeu->jeu.pi->y_dep2;
	pion22.h = 105;
	pion22.w = 200;

	SDL_BlitSurface(pSdlJeu->surface_2,&pion2,pSdlJeu->ecran,&pion22);
}

void sdlAff_3(SDLJEU *pSdlJeu)
{
    SDL_Rect pion3, pion32;

	pion3.x = 0;
	pion3.y = 0;
	pion3.h = 114;
	pion3.w = 200;

	pion32.x = pSdlJeu->jeu.pi->x_dep3;
	pion32.y = pSdlJeu->jeu.pi->y_dep3;
	pion32.h = 114;
	pion32.w = 200;

	SDL_BlitSurface(pSdlJeu->surface_3,&pion3,pSdlJeu->ecran,&pion32);
}

void sdlAff_4(SDLJEU *pSdlJeu)
{
    SDL_Rect pion4, pion42;

	pion4.x = 0;
	pion4.y = 0;
	pion4.h = 74;
	pion4.w = 154;

	pion42.x = pSdlJeu->jeu.pi->x_dep4;
	pion42.y = pSdlJeu->jeu.pi->y_dep4;
	pion42.h = 74;
	pion42.w = 154;

	SDL_BlitSurface(pSdlJeu->surface_4,&pion4,pSdlJeu->ecran,&pion42);
}

void sdlAff_De(SDLJEU *pSdlJeu)
{
    char tab_de[4];
    SDL_Rect position;
    SDL_Color couleurNoire = {0, 0, 0};
    TTF_Font *police = TTF_OpenFont("data/POLICE.TTF",50);

    sprintf(tab_de,"%d",pSdlJeu->jeu.d);

    pSdlJeu->de = TTF_RenderText_Blended(police, tab_de, couleurNoire);

    position.x = 1174;
    position.y = 13;

    SDL_BlitSurface(pSdlJeu->de,NULL,pSdlJeu->ecran,&position);
}

void sdlAff_Score(SDLJEU *pSdlJeu)
{
    int score1, score2, score3, score4;
    char tab_score1[4];
    char tab_score2[4];
    char tab_score3[4];
    char tab_score4[4];
    SDL_Rect position;
    SDL_Rect position2;
    SDL_Rect position3;
    SDL_Rect position4;
    SDL_Color couleurNoire = {0, 0, 0};
    TTF_Font *police = TTF_OpenFont("data/POLICE.TTF",50);

    score1 = 10;
    score2 = 10;
    score3 = 10;
    score4 = 10;

    sprintf(tab_score1,"%d",score1);
    sprintf(tab_score2,"%d",score2);
    sprintf(tab_score3,"%d",score3);
    sprintf(tab_score4,"%d",score4);

    pSdlJeu->score1 = TTF_RenderText_Blended(police, tab_score1, couleurNoire);
    pSdlJeu->score2 = TTF_RenderText_Blended(police, tab_score2, couleurNoire);
    pSdlJeu->score3 = TTF_RenderText_Blended(police, tab_score3, couleurNoire);
    pSdlJeu->score4 = TTF_RenderText_Blended(police, tab_score4, couleurNoire);

    position.x = 500;
    position.y = 10;

    position2.x = 1173;
    position2.y = 250;

    position3.x = 500;
    position3.y = 630;

    position4.x = 39;
    position4.y = 250;

    SDL_BlitSurface(pSdlJeu->score1,NULL,pSdlJeu->ecran,&position);
    SDL_BlitSurface(pSdlJeu->score2,NULL,pSdlJeu->ecran,&position2);
    SDL_BlitSurface(pSdlJeu->score3,NULL,pSdlJeu->ecran,&position3);
    SDL_BlitSurface(pSdlJeu->score4,NULL,pSdlJeu->ecran,&position4);
}

void sdljeuAff(SDLJEU *pSdlJeu)
{
    SDL_Rect position;
    SDL_FillRect( pSdlJeu->ecran, &pSdlJeu->ecran->clip_rect, SDL_MapRGB( pSdlJeu->ecran->format, 0xFF, 0xFF, 0xFF ) );

	position.x = 0;
	position.y = 0;
	position.h = 1169;
	position.w = 829;

    if(pSdlJeu->jeu.avancement == 0)
    {
        SDL_BlitSurface(pSdlJeu->surface_Menu,&position,pSdlJeu->ecran,&position);
    }
    else if(pSdlJeu->jeu.avancement == 10)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle1,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 11)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle2,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 2)
    {
        SDL_BlitSurface(pSdlJeu->surface_MenuJoueur,&position,pSdlJeu->ecran,&position);
    }
    else if(pSdlJeu->jeu.avancement == 3)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_1(pSdlJeu);
        sdlAff_2(pSdlJeu);
        sdlAff_3(pSdlJeu);
        sdlAff_4(pSdlJeu);
        sdlAff_Score(pSdlJeu);

    }
   else if(pSdlJeu->jeu.avancement == 4)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_1(pSdlJeu);
        sdlAff_2(pSdlJeu);
        sdlAff_3(pSdlJeu);
        sdlAff_4(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
    }
    else if(pSdlJeu->jeu.avancement == 5)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_3(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 6)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_2(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 7)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_4(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 8)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_4(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 9)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Carte(pSdlJeu);
    }

}

void sdljeuBoucle(SDLJEU *pSdlJeu)
{
	SDL_Event event;
	int continue_boucle = 1;
    int numcase3=1;
    int numcase4=1;
    int numcase2=1;
    int numcase1=1;
    /* Horloges (en secondes)*/
    float horloge_courante, horloge_precedente;

    /* Intervalle de temps (en secondes) entre deux évolutions du jeu
    //! Changer la valeur pour ralentir ou accélérer le déplacement des fantomes*/
    float intervalle_horloge = 0.1f;

    int rafraichissement;

	sdljeuAff(pSdlJeu);
	assert( SDL_Flip( pSdlJeu->ecran )!=-1 );

    /* Récupère l'horloge actuelle et la convertit en secondes
    //! clock() retourne le nombre de tops horloge depuis le lancement du programme*/
    horloge_precedente = (float)clock()/(float)CLOCKS_PER_SEC;

	/* Tant que ce n'est pas la fin ...*/
	while ( continue_boucle == 1 )
	{
	    rafraichissement = 0;

	     /*Récupère l'horloge actuelle et la convertit en secondes*/
        horloge_courante = (float)clock()/(float)CLOCKS_PER_SEC;

        /* Si suffisamment de temps s'est écoulé depuis la dernière prise d'horloge*/
        if (horloge_courante-horloge_precedente>=intervalle_horloge)
        {
                rafraichissement = 1;
                horloge_precedente = horloge_courante;
        }

		/* tant qu'il y a des evenements à traiter : cette boucle n'est pas bloquante*/
		while ( SDL_PollEvent( &event ) )
		{
			/* Si l'utilisateur a cliqué sur la croix de fermeture*/
			if ( event.type == SDL_QUIT )
				continue_boucle = 0;

			if(pSdlJeu->jeu.avancement == 0)
            {
                /* Si l'utilisateur a appuyé sur une touche*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 403)&&(event.button.x < 897))
                        {
                            if((event.button.y > 242)&&(event.button.y < 317))
                            {
                                pSdlJeu->jeu.avancement = 2;
                                rafraichissement = 1;
                            }
                            else if((event.button.x > 403)&&(event.button.x < 897))
                            {
                                if((event.button.y > 349)&&(event.button.y < 422))
                                {
                                    pSdlJeu->jeu.avancement = 10;
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==10)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 11;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==11)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 0;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==12)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 13;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==13)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 14;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==14)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 15;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==15)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 0;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==2)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 854)&&(event.button.x < 1272))
                        {
                            if((event.button.y > 280)&&(event.button.y < 437))
                            {
                                pSdlJeu->jeu.avancement = 3;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==3)
            {
                if(((pSdlJeu->jeu.pi->x_dep4==405) && (pSdlJeu->jeu.pi->y_dep4==90))||((pSdlJeu->jeu.pi->x_dep2==405) &&(pSdlJeu->jeu.pi->y_dep2==90))||((pSdlJeu->jeu.pi->x_dep1==405) &&(pSdlJeu->jeu.pi->y_dep1==90))||((pSdlJeu->jeu.pi->x_dep3==405) &&(pSdlJeu->jeu.pi->y_dep3==90))||
                (((pSdlJeu->jeu.pi->x_dep4==810) && (pSdlJeu->jeu.pi->y_dep4==90))||((pSdlJeu->jeu.pi->x_dep2==810) &&(pSdlJeu->jeu.pi->y_dep2==90))||((pSdlJeu->jeu.pi->x_dep1==810) &&(pSdlJeu->jeu.pi->y_dep1==90))||((pSdlJeu->jeu.pi->x_dep3==810) &&(pSdlJeu->jeu.pi->y_dep3==90)))||
                (((pSdlJeu->jeu.pi->x_dep4==1100) && (pSdlJeu->jeu.pi->y_dep4==435))||((pSdlJeu->jeu.pi->x_dep2==1100) &&(pSdlJeu->jeu.pi->y_dep2==435))||((pSdlJeu->jeu.pi->x_dep1==1100) &&(pSdlJeu->jeu.pi->y_dep1==435))||((pSdlJeu->jeu.pi->x_dep3==1100) &&(pSdlJeu->jeu.pi->y_dep3==435)))||
                (((pSdlJeu->jeu.pi->x_dep4==895) && (pSdlJeu->jeu.pi->y_dep4==600))||((pSdlJeu->jeu.pi->x_dep2==895) &&(pSdlJeu->jeu.pi->y_dep2==600))||((pSdlJeu->jeu.pi->x_dep1==895) &&(pSdlJeu->jeu.pi->y_dep1==600))||((pSdlJeu->jeu.pi->x_dep3==895) &&(pSdlJeu->jeu.pi->y_dep3==600)))||
                (((pSdlJeu->jeu.pi->x_dep4==200) && (pSdlJeu->jeu.pi->y_dep4==435))||((pSdlJeu->jeu.pi->x_dep2==200) &&(pSdlJeu->jeu.pi->y_dep2==435))||((pSdlJeu->jeu.pi->x_dep1==200) &&(pSdlJeu->jeu.pi->y_dep1==435))||((pSdlJeu->jeu.pi->x_dep3==200) &&(pSdlJeu->jeu.pi->y_dep3==435)))||
                (((pSdlJeu->jeu.pi->x_dep4==200) && (pSdlJeu->jeu.pi->y_dep4==300))||((pSdlJeu->jeu.pi->x_dep2==200) &&(pSdlJeu->jeu.pi->y_dep2==300))))
                {
                    if ( event.type == SDL_MOUSEBUTTONDOWN )
                    {
                        if(event.button.button == SDL_BUTTON_LEFT)
                        {
                            if((event.button.x > 295)&&(event.button.x < 523))
                            {
                                if((event.button.y > 147)&&(event.button.y < 325))
                                {
                                    pSdlJeu->jeu.avancement = 9;
                                    jeTirage_Carte(&pSdlJeu->jeu);
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
                }
                else if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                       if((event.button.x > 306)&&(event.button.x < 382))
                       {
                           if((event.button.y > 465)&&(event.button.y < 526))
                           {
                               pSdlJeu->jeu.avancement = 4;
                               jeRecup_Des(&pSdlJeu->jeu);
                               rafraichissement = 1;
                           }
                       }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==4)
            {
                if ( event.type == SDL_KEYDOWN )
                {
                    switch ( event.key.keysym.sym )
                    {
                        case SDLK_a:
                        pSdlJeu->jeu.pi->numcase=numcase3;
                        jeDeplacement_Pion3(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 5;
                        rafraichissement = 1;
                        numcase3=numcase3+pSdlJeu->jeu.d;
                        break;
                        case SDLK_z:
                        pSdlJeu->jeu.pi->numcase=numcase2;
                        jeDeplacement_Pion2(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 6;
                        rafraichissement = 1;
                        numcase2=numcase2+pSdlJeu->jeu.d;
                        break;
                        case SDLK_e:
                         pSdlJeu->jeu.pi->numcase=numcase4;
                        jeDeplacement_Pion4(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 7;
                        rafraichissement = 1;
                        numcase4=numcase4+pSdlJeu->jeu.d;
                        break;
                        case SDLK_r:
                         pSdlJeu->jeu.pi->numcase=numcase1;
                        jeDeplacement_Pion1(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 8;
                        rafraichissement = 1;
                        numcase1=numcase1+pSdlJeu->jeu.d;
                        break;
                        default: break;
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement == 9)
            {
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                    {
                        if(event.button.button == SDL_BUTTON_LEFT)
                        {
                            if((event.button.x > 771)&&(event.button.x < 999))
                            {
                                if((event.button.y > 351)&&(event.button.y < 728))
                                {
                                    pSdlJeu->jeu.avancement = 3;
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
            }
		}
        if (rafraichissement==1)
        {
            /* on affiche le jeu sur le buffer caché */
            sdljeuAff(pSdlJeu);

            /* on permute les deux buffers (cette fonction ne doit se faire qu'une seule fois dans a boucle) */
            SDL_Flip( pSdlJeu->ecran );
        }
    }
}
